Telegram Group & Telegram Channel
📌 Оптимизация работы со строками в C++: std::string_view vs std::string

Привет, друзья! Сегодня хочу обсудить одну из самых частых проблем в C++ – работу со строками. А именно, почему std::string_view – это мощный инструмент, который может значительно ускорить ваш код.

Проблема: Копирование строк
Допустим, у вас есть функция, которая принимает строку:


void process(std::string s) {
// работа со строкой
}

Каждый раз, когда вызывается эта функция, создаётся новая копия строки. Если строка длинная, это дорого по времени и памяти.

Решение: Используем std::string_view
С std::string_view можно избежать лишнего копирования:


void process(std::string_view s) {
// работа со строкой без копирования
}

Теперь s – это просто представление строки, а не её копия. Вы можете передавать как std::string, так и char*, что делает API более гибким.

🚀 Преимущества std::string_view:
Не создает копий – работает быстрее.
Поддерживает стандартные операции (substr, find и т. д.).
Работает с std::string, char*, массивами символов.
Идеально подходит для парсинга и работы с текстом.

🔥 Важно помнить:
- std::string_view не управляет памятью, так что будьте осторожны с временными строками.
- Если строка-источник уничтожена, std::string_view станет невалидным.

Пример неверного использования:

std::string_view bad() {
std::string s = "Hello";
return s; // UB, строка уничтожена!
}


➡️ @cpp_geek



tg-me.com/cpp_geek/287
Create:
Last Update:

📌 Оптимизация работы со строками в C++: std::string_view vs std::string

Привет, друзья! Сегодня хочу обсудить одну из самых частых проблем в C++ – работу со строками. А именно, почему std::string_view – это мощный инструмент, который может значительно ускорить ваш код.

Проблема: Копирование строк
Допустим, у вас есть функция, которая принимает строку:


void process(std::string s) {
// работа со строкой
}

Каждый раз, когда вызывается эта функция, создаётся новая копия строки. Если строка длинная, это дорого по времени и памяти.

Решение: Используем std::string_view
С std::string_view можно избежать лишнего копирования:


void process(std::string_view s) {
// работа со строкой без копирования
}

Теперь s – это просто представление строки, а не её копия. Вы можете передавать как std::string, так и char*, что делает API более гибким.

🚀 Преимущества std::string_view:
Не создает копий – работает быстрее.
Поддерживает стандартные операции (substr, find и т. д.).
Работает с std::string, char*, массивами символов.
Идеально подходит для парсинга и работы с текстом.

🔥 Важно помнить:
- std::string_view не управляет памятью, так что будьте осторожны с временными строками.
- Если строка-источник уничтожена, std::string_view станет невалидным.

Пример неверного использования:

std::string_view bad() {
std::string s = "Hello";
return s; // UB, строка уничтожена!
}


➡️ @cpp_geek

BY C++ geek


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/cpp_geek/287

View MORE
Open in Telegram


C geek Telegram | DID YOU KNOW?

Date: |

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

What is Secret Chats of Telegram

Secret Chats are one of the service’s additional security features; it allows messages to be sent with client-to-client encryption. This setup means that, unlike regular messages, these secret messages can only be accessed from the device’s that initiated and accepted the chat. Additionally, Telegram notes that secret chats leave no trace on the company’s services and offer a self-destruct timer.

C geek from ca


Telegram C++ geek
FROM USA